﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services", SessionMode=SessionMode.Allowed)]
    public interface IInboundDetailService
    {
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string AutoPutAway(string receiptID, List<string> receiptLineID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string BatchReceiving(string receiptID, List<string> receiptLineID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string CheckSkuIDExist(string orderID, string skuID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(PutawayDetailInfo))]
        string ConfirmPutAway(List<PutawayDetailInfo> putawayDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string DeleteReceiptDetailInfo(List<string> receiptID, List<string> receiptLineID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(ReceiptDetailInfo))]
        string ExecuteReceiving(ReceiptDetailInfo receiptDetailInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string ExecuteReceivingAll(string receiptID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ReceiptPutawayInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string GenPutAway(List<ReceiptPutawayInfo> receiptPutawayInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetAllReceiptDetailInfo(PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(ReceiptDetailInfo)), ServiceKnownType(typeof(PubParasInfo))]
        ReceiptDetailInfo GetNextUncompletedReceiptDetailInfo(string receiptID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(ReceiptPutawayInfo)), ServiceKnownType(typeof(PubParasInfo))]
        List<ReceiptPutawayInfo> GetPendingPutAwayTaskByTransID(string transID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(ReceiptDetailQueryEntity))]
        DataSet GetPutAwayDetailByPagerQueryEntity(PutawayDetailQueryEntity putawayDetailQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        ReceiptDetailInfo GetReceiptDetailInfoByID(string receiptID, string receiptLineID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ReceiptDetailInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        DataSet GetReceiptDetailInfoByPagerQueryEntity(ReceiptDetailQueryEntity receiptDetailQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(ReceiptLotInfo)), ServiceKnownType(typeof(PubParasInfo))]
        DataSet GetReceiptDetailInfoByQueryEntity(ReceiptDetailQueryEntity receiptDetailQuery, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ReceiptDetailInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        List<ReceiptDetailInfo> GetReceiptDetailInfoListByID(string receiptID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(ReceiptHistoryQueryEntity))]
        DataSet GetReceiptHistoryByPagerQueryEntity(ReceiptHistoryQueryEntity receiptHistoryQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo)), ServiceKnownType(typeof(PutawayDetailInfo))]
        DataSet GetReceiptInquiryInfoByQueryEntity(ReceiptDetailQueryEntity receiptQueryEntity, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        List<string> GetUnPrintPutawayTaskIDByReceiptID(string receiptID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(ReceiptLotInfo)), ServiceKnownType(typeof(PubParasInfo)), OperationContract]
        string InsertReceiptDetailInfo(ReceiptDetailInfo receiptInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PubParasInfo))]
        string ReceiptDetailPriceChanges(string receiptID, string lineID, string IsPalletized, float price, float totalPrice, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PubParasInfo)), OperationContract, ServiceKnownType(typeof(ReceiptLotInfo))]
        string UpdateReceiptDetailInfo(ReceiptDetailInfo receiptInfo, PubParasInfo pubParasInfo);
    }
}

